package trabalho;

public class Main {

	public static void main(String[] args) {
		
		//new Menu().menu();
		
		ListaDupla l = new ListaDupla();
		No noTeste = null;
		
		Pessoa p1 = new Pessoa(1, "João", 20, 'M');
		No no1 = new No();
		no1.setPessoa(p1);
		l.inserirElemento(no1);
		
		Pessoa p2 = new Pessoa(2, "Pedro", 54, 'M');
		No no2 = new No();
		no2.setPessoa(p2);
		l.inserirElemento(no2);
		
		Pessoa p3 = new Pessoa(3, "Maria", 32, 'F');
		No no3 = new No();
		no3.setPessoa(p3);
		l.inserirElemento(no3);
		
		// Faz a listagem dos elementos da lista
		System.out.println("----------------------------------------------------");
		l.reinicializarNoInicio();
		noTeste = null;
		do {
			noTeste = l.proximo();
			if (noTeste != null) {
				System.out.println(noTeste);
			}
		} while (noTeste != null);
		System.out.println("----------------------------------------------------");
		
		
		// Insere elemento na 2 posicao da lista
		Pessoa p4 = new Pessoa(4, "Roberto", 35, 'M');
		No no4 = new No();
		no4.setPessoa(p4);		
		l.inserirElemento(no4, 2);
		
		// Retorna o elemento da 2 posição da lista
		System.out.println("\n----------------------------------------------------");
		System.out.println("Elemento inserido na posição 2: \n" + no4);
		System.out.println("----------------------------------------------------");
		
		
		// Faz a listagem dos elementos da lista
		System.out.println("\n----------------------------------------------------");
		l.reinicializarNoInicio();
		noTeste = null;
		do {
			noTeste = l.proximo();
			if (noTeste != null) {
				System.out.println(noTeste);
			}
		} while (noTeste != null);
		System.out.println("----------------------------------------------------");
		
		
		// Retorna o elemento da 3 posição da lista
		System.out.println("\n----------------------------------------------------");
		System.out.println("Recuperando elemento da posição 3: \n" + l.retornarElementoDaPosicao(3));
		System.out.println("----------------------------------------------------");
		
		
		// Insere elemento na primeira posição
		Pessoa p5 = new Pessoa(5, "Júlia", 23, 'F');
		No no5 = new No();
		no5.setPessoa(p5);
		l.inserirElemento(no5);
		
		// Inseriu na primeira posição da lista
		System.out.println("\n----------------------------------------------------");
		System.out.println("Elemento inserido na primeira posição: \n" + no5);
		System.out.println("----------------------------------------------------");
		
		
		
		// Insere elemento na 5 posicao da lista
		Pessoa p6 = new Pessoa(6, "Saulo", 36, 'M');
		No no6 = new No();
		no6.setPessoa(p6);
		l.inserirElemento(no6, 4);
		
		// Inseriu na 4 posição da lista
		System.out.println("\n----------------------------------------------------");
		System.out.println("Elemento inserido na 4 posição: \n" + no6);
		System.out.println("----------------------------------------------------");
		
		
		// Inseriu na 4 posição da lista
		System.out.println("\n----------------------------------------------------");
		System.out.println("Quantidade de elementos: " + l.getTamanhoLista());
		System.out.println("----------------------------------------------------");
		
		
		// Faz a listagem dos elementos da lista
		System.out.println("\n----------------------------------------------------");
		l.reinicializarNoInicio();
		noTeste = null;
		do {
			noTeste = l.proximo();
			if (noTeste != null) {
				System.out.println(noTeste);
			}
		} while (noTeste != null);
		System.out.println("----------------------------------------------------");
		
		
		// Retorna o elemento da 6 posição da lista
		System.out.println("\n----------------------------------------------------");
		System.out.println("Recuperando elemento da posição 6: \n" + l.retornarElementoDaPosicao(6));
		System.out.println("----------------------------------------------------");
		
		
		// Faz a listagem dos elementos da lista
		System.out.println("\n----------------------------------------------------");
		l.reinicializarNoInicio();
		noTeste = null;
		do {
			noTeste = l.proximo();
			if (noTeste != null) {
				System.out.println(noTeste);
			}
		} while (noTeste != null);
		System.out.println("----------------------------------------------------");
		
		// Retorna o elemento da 6 posição da lista
		System.out.println("\n----------------------------------------------------");
		System.out.println("Remover elemento da posição 5: \n" + l.retornarElementoDaPosicao(5));
		System.out.println("----------------------------------------------------");
		l.excluirElemento(5);
		
		// Faz a listagem dos elementos da lista
		System.out.println("\n----------------------------------------------------");
		l.reinicializarNoInicio();
		noTeste = null;
		do {
			noTeste = l.proximo();
			if (noTeste != null) {
				System.out.println(noTeste);
			}
		} while (noTeste != null);
		System.out.println("----------------------------------------------------");
		
		
		

		

				

	}
}
